// 泛型:指在定义函数、接口或类的时候，不预先指定具体的类型，而在使用的时候再指定具体类型的一种特性。
// 1- 封装一个函数，该函数接收两个参数（第一个参数为数组的内容，第二个参数为数组的长度），返回一个数组
// 数组的元素类型是数字
// function createArr(value:number,length:number):number[]{
//     const arr = [];
//     for(let i=0;i<length;i++){
//         arr.push(value);
//     }
//     return arr;
// }
// console.log(createArr(100,3));// [100,100,100]


// 数组的元素类型是字符串
// function createArr(value:string,length:number):string[]{
//     const arr = [];
//     for(let i=0;i<length;i++){
//         arr.push(value);
//     }
//     return arr;
// }
// console.log(createArr("100",3));// [100,100,100]


// 使用泛型
// function createArr<T>(value:T,length:number):T[]{
//     const arr = [];
//     for(let i=0;i<length;i++){
//         arr.push(value);
//     }
//     return arr;
// }
//
// console.log(createArr<number>(1,10));
// console.log(createArr<string>("1",10));


// 指定多个泛型
function my<T,S,M>(userName:T,age:S,sex:M):S{
    return age;
}
my<number,string,boolean>(1,"2",true);
